/*
 * @Author: zi.yang
 * @Date: 2021-10-02 22:27:09
 * @LastEditors: zi.yang
 * @LastEditTime: 2021-10-04 23:30:05
 * @Description: In User Settings Edit
 * @FilePath: \project-management\models\sys_login_log.js
 */

const { Sequelize, DataTypes } = require('sequelize');
const moment = require('moment');
const db = require('./db');

const config = {
  id:{
    type:DataTypes.INTEGER,
    primaryKey:true,
    allowNull:false,
    autoIncrement:true
  },
  userId:{
    field:'user_id',
    type:DataTypes.INTEGER,
    default:-1
  },
  loginName:{
    field:'login_name',
    type:DataTypes.STRING,
    allowNull:false,
    default:''
  },
  loginTime:{
    field:'login_time',
    type:DataTypes.DATE,
    allowNull:false,
    get() {
      return moment(this.getDataValue('loginTime')).format(
        'YYYY-MM-DD HH:mm:ss'
      );
    },
    defaultValue: Sequelize.NOW,
  },
  ipAddr:{
    field:'ipaddr',
    type:DataTypes.STRING,
    allowNull:false,
    defaultValue:''
  },
  state:{
    type:DataTypes.CHAR,
    allowNull:false,
  },
  message:{
    type:DataTypes.STRING,
    allowNull:false,
    defaultValue:''
  },
  browser:{
    type:DataTypes.STRING,
    allowNull:false,
    defaultValue:''
  },
  os:{
    type:DataTypes.STRING,
    allowNull:false,
    defaultValue:''
  },
};

// 定义模型属性
const Model = db.define('sys_login_log', config, {
  timestamps: false,
  // 强制表名称等于模型名称
  freezeTableName: true,
});

module.exports = Model;
